#include <stdio.h>

struct pic {
	int height;
	int width;
	int a[10][10];
} bmp;

int main() {
	scanf("%d %d", &bmp.width, &bmp.height);
	int i = 0;
	int j = 0;
	int tmp = 0;
	for (i = 0; i < bmp.height; i++) {
		for (j = 0; j < bmp.width; j++) {
			scanf(" %d", &bmp.a[i][j]);
		}
	}
	int num = 0;
	scanf("%d", &num);
	if (num == 0 || num == 180) {
		printf("%d %d\n", bmp.width, bmp.height);
	} else if (num == 90 || num == 270) {
		tmp = bmp.height;
		bmp.height = bmp.width;
		bmp.width = tmp;
		printf("%d %d\n", bmp.width, bmp.height);
	}
	if (num == 0) {
		for (i = 0; i < bmp.height; i++) {
			for (j = 0; j < bmp.width; j++) {
				printf("%d ", bmp.a[i][j]);
			}
			printf("\n");

		}
	} else if (num == 90) {
		for (i = 0; i < bmp.height; i++) {
			for (j = bmp.width - 1; j >= 0; j--) {
				printf("%d ", bmp.a[j][i]);
			}
			printf("\n");
		}

	} else if (num == 180) {
		for (i = bmp.height - 1; i >= 0; i--) {
			for (j = bmp.width - 1; j >= 0; j--) {
				printf("%d ", bmp.a[i][j]);
			}
			printf("\n");
		}

	} else if (num == 270) {
		for (i = bmp.height - 1; i >= 0; i--) {
			for (j = 0; j < bmp.width; j++) {
				printf("%d ", bmp.a[j][i]);
			}
			printf("\n");
		}
	}


	return 0;
}